查看原文
其他

在七夕前夕,我终于用数学方法找到了脱单的窍门!

2017-08-23 中科院物理所


早上一个大清早,我就注意到了马上要到来的日期:

约*

虐狗

  8月

28日


狗终得一虐,或虐于情人,或虐于七夕。      

——司马签

狗生自古谁无虐,早虐晚虐都得虐。

——闻天祥



嗯……躺在寝室里的床上久久不愿起来的我,想到一堆的事情,觉得除了是一个恼人的周一并没有什么不同。但是突然老友小H的一条消息打破了宁静——


这就是……当年说好……谁先脱单谁是狗的基友吗……



但是话说回来,老友小H的这个问题倒真的是非常现实。犹记得那个著名的故事,说柏拉图问苏格拉底婚姻是什么,苏格拉底说:请你穿越这片树林,途中不要回头,并只能砍一次,然后带回最粗壮的一棵树。柏拉图瞻前顾后,左右为难,只能最后随便砍了一棵树了事。


那么究竟有没有一个好的办法,使得我们能够在只做一次选择的要求下,在茫茫人海中,尽量选择到那个the one呢?


说着,小H又发来消息



没错!一个好的方案通常基于一些出色而合理的假设和模型,我们这里假设模型如下:

相遇模型

在人海中你会依次碰到n个异性(或同性),每一个当前碰到的人和之前完全独立;

你对于每个人是否追求(或接受)的选择相互无关;

当遇到第i个人的时候对于i+1到n的人都一无所知;

每个人都有一个与你的契合程度,其中第i个人为W_i,且我们假定这些W_i两两不同;

你只能在这个序列中的某个时刻选择接受,然后放弃之后所有的可能人选。

你试图找到契合程度最大的人




由于这里我们只能选择一次,所以问题变得十分的棘手。一件十分显然的事情是,如果去掉只能选择一次的限制,使你能够不断易手、新陈代谢、优胜劣汰,那么显然你可以通过打擂台的方式最后掌握到最好的那个。


但是诚然……这样的作风似乎……

怎么感觉最后会失去一切啊……

所以我们必须设计一个更好的做法。直觉上,当n猛增的时候,茫茫人海中找到最好的似乎越来越渺茫,因为我们只能选择一次。但是接下来的分析将会告诉我们,其实有一种方法,能够在n趋近于无穷时,把找到最佳值的概率控制在0.368左右(准确来说是1/e,e为自然对数约等于2.71828)


这个神奇的做法其实一点都不复杂,那就是我们对待刚开始约n/e的所有人都默默观察、按兵不动,选择放弃所有这些人。但是,默默记下这些被放弃的人中的最优秀(或最契合)的那一个。对待后面的n(1-1/e)的人,一旦第一次发现比之前记下的那个最好的人更好的,就立刻选择接受。


一定会有人问这是为什么,为什么要好端端伤害前面n/e的人的心(来得早怪我咯),以及这个诡异的1/e的系数从何而来。没事,我们慢慢说起。


首先必须明确的事情是,我们必须要有所舍弃。而我们能够采取的唯一方式就是无条件放弃刚开始一定数量的人。否则我们的策略根本无从谈起,因为我们没有参照对象来了解整个数据的分布。


那么我们的策略大致定为如下:

选择一个数字k,前k个人将被我们当做参照的模板(或称pool)而被迫放弃,而后我们以pool里的最大数为基准,选择后面第一次出现的比基准更大的数。我们现在要做的,就是估计出这个策略能够选出最大值的概率,以及如何调整这个k使得概率最大。


我们可以先想想,在这种情况下,什么时候我们能够选出那个心仪的最佳人选呢?无外乎是这样的情况:


  1. 最佳的人姗姗来迟(在k个人之后,否则……囧)

  2. 你没有被次优解带走(换句话说,不存在一个高于pool基准的但是不是最大的人,在这位真命天子之前出现)


满足了这两点之后,我们就可以确保最后是和最契合的人在一起了。那么我们现在不妨将问题转化成,在所有契合度的全排列中,有多少排列满足这样的要求呢?(然后将这个数字除以总的排列数就得到概率)


我们不妨进行分类,现在真命天子出现的位置一定是k+1到n的某个位置了,我们假设就是在第j个出现的话,这种情况下满足要求的排列有多少。


我们用乘法原理分步安排:

第一步:从n-1个人里选择比真命天子差的j-1个人摆在前头,方案数C(n-1,j-1)【记号为组合数】


第二步:选出这j-1个人里最好的作为基准,安插到前k个当中的某个位置(防止被次优解带走),方案数k


第三步:随意安放剩余j-2个人的全排列,方案数(j-2)!


第四步:随意安放剩余n-j个人在后面的全排列,方案数(n-j)!


综上我们有,如果真命天子出现于第j个人并成功被你的方案选到,这种排列的方式有:

那么枚举j从k+1到n,我们就能得到所有满足要求的排列一共有

应用常用的估计函数即

等式右边就能变成

所以最后的概率为这个式子除以n!,也就是说,我们用这个方法能找到最佳the one的概率是:

要注意到这个不等号是可以很接近的取到的!因为我们如果把n/k当做一个自变量,这个函数实质就是ln(x)/x,高考过的孩子对于它在e处取得最大值1/e实在是再熟悉不过了(求个导就成)。所以我们得到了最终结论:我们选择前1/e的人舍弃,可以以1/e的概率找到真命天子!即使n趋向于正无穷!



哇塞!听完我这个理论,小H欢呼雀跃。

然后……

接受了表白开始发狗粮……


(其实上面的分析还有好几点没有讲明,首先是我们假定了这些人的出现完全随机,而事实上随着人生境界层次的提升,整体上素质和契合度是越来越高的,所以模型预测将有误差需要修正;


其次,你需要先知道总数n,然后再决定舍弃的数量n/e,可是这个n又从何而得呢?你在还没有开始人生之前,如何知道一辈子总共要见到多少人呢?所以遇到感觉合适的还是上吧干巴爹


此外,即使知道n,在被n趋向于无穷还能保持1/e概率找到the one震撼、并打算实际实用之前,不要忘记,一旦最佳的人出现在了前k个,你的结局将是光棍,因为你为了那个你曾经放弃的最好的TA终生不娶/嫁。这个概率也同样高达0.368【黑人阴暗笑脸】


为林徽因终生未娶的金岳霖


最后……谁能具有这个模型所假定的只要追求就一定能到手的能力啊囧)


然而现实情况要复杂的多!在上面提到的几点之外,很多情侣(抑或暧昧中的双方)担心的无外乎一件事情,那就是对方并不是确保只做一次选择、自己的地位从而是不稳定的。而一旦有新的第三方的出现,并且在契合度上拥有较大的优势的话,自己很容易就会处于被动的地位。


但是记住,这对双方来说都是一样的!换句话说双方其实都需要坚守和背叛中做出抉择,而最后的结果基于双方的选择!


感觉到了吗?这是囚徒博弈啊[机智脸]

 

人的心思十分复杂,所以这里我们不妨采取经济学里十分取巧的做法:假设人是纯粹理性、总是采取价值最大化,并且足够聪明


【以下内容纯属娱乐性质,请勿实际尝试,否则喜大普奔概不负责】


一个通常的博弈表格是这样的:

注意到了吗,无论对方采取什么样的抉择,在这一方看来都是背叛为最佳选择!也就是说纯粹理性的伴侣会在遇到更好的另一半的时候即刻劈腿!


但是……看看身边的恩爱狗们……

事实好像……不是这样的啊……

嗯……那么我们的模型出错在哪里了呢?

第一件事情需要修正的,就是我们的这个模型里,博弈只进行了一回。而在这一回博弈里,双方为了利益最大化,显然采取背叛是最佳策略。但是事实上,这件事情会持续好几年,博弈亦会进行好几轮,所以一方的背叛具有长期后果(长期愧疚)。可能因为背叛的收益无法抵偿这样的后果,所以双方采取坚守。


听起来很有说服力是吗?


大错特错!

我们不妨倒过来看,在一个有限的时间里,博弈也只会有有限轮。那么最后一轮会发生什么呢?

 

再无后顾之忧

 

当然是选择背叛啦

没错,这就是悲惨的现实。比如以大学四年为例,如果知道博弈到最后之时必然结束,那么此刻更好的人选出现时再无所谓的长效后顾之忧,双方依然会必然选择相互背叛。

【艾玛扎心了老铁】


但是注意!双方都足够聪明!他们都知道对方最后一次会背叛,那么倒数第二轮也就没有必要坚守了,因为既然最后一轮对方必然背叛、不必考虑损失,那么显然倒数第二轮也是背叛的好。毕竟任何单独一轮背叛都是最佳选择。


所以相信你已经猜到了,根据数学归纳法原理,最后双方一定在一开始就选择背叛。

但也许我们还有救!既然你是从最后的位置开始向前倒推的,那么我让这个过程变成无限从而没有结束行不行呢?


比如,双方耳鬓厮磨之余,海誓山盟并没有设下最终的期限,让这个过程成为了无限博弈?


听起来的确很合理,事实上,搭配以双方恰当的策略,即使是在这样的囚徒困境下,双方的确能够实现无限合作与坚守。


策略一:永久报复

顾名思义,这个策略的含义就是双方互相告知:一旦对方背叛,自己将在以后立刻同样采取背叛,并永远保持这一状态让对方吃苦果。

这样的话每一方在背叛时就被迫三思了,因为TA需要清醒认识到背叛在之后带来的痛苦代价。在这个无限例子中,双方在此之后将会永远保持合作不会背叛。

不过需要小小提醒的是,实际情况中,这个保持背叛对于对方的惩罚效果会被削弱。因为对方可能可以通过第一次背叛所得的收入来通过利滚利的形式弥补损失。


抑或是,在这个例子里有一个良心衰减因子r<1【用以衡量良心里愧疚的程度衰减的快慢,在原情境中默认为1】,于是这个无限背叛造成的损失成为了一个等比数列的求和(而非无穷),一旦这个求和比一次背叛的收获要小,那么一方还是会采取背叛。


策略二:即刻原谅

这个策略显得温和得多。它的核心还是要对对方的背叛行为造成惩罚,但是它不是一次撕破脸,而更倾向于一种以牙还牙、以眼还眼的形式。


其核心是:对方进行背叛时,让我在此次收到了伤害,但是我向对方保证:下一轮博弈我将一定采取背叛并保持,以此惩罚对方。但是与永久报复不同的是,即刻原谅的措施鼓励合作的进一步进行,它同时也许诺:只要对方在任何时候重回坚守之合作,自己也将会在下一轮博弈中立刻回到合作中来


这个看起来十分蠢萌可爱的策略,其实非常有效,因为它贯彻了三个重要的原则:即刻原谅、仁慈、反应及时。在密歇根大学的计算机程序囚徒困境博弈赛中,这个简单的策略出其不意得在众多程序中胜出,即为很好的例子。

其实说了这么多,解决囚徒困境有一个最简单的办法,就是引入外加代价。换句话说,只要让对方在单轮上选择背叛会担负起巨大的损失,那么无论有限还是无限那么对方都不会背叛了。


想到了吗?落实到我们这个具体的问题上,给背叛加上巨大枷锁和代价的措施就是……



承认吧苦命的狗儿们,恩爱狗的幸福大幅度建立在单身狗狗们的狗粮上。下次吃狗粮的时候要记住:


我在为你们的幸福默默付出

最后说两句,人都不是那样纯粹势利的动物,我们和机器不同之处就在于我们有感情和羁绊,以及审美。

所以,主页菌感谢大家看到这里,送上亲笔写的七夕彩蛋~

祝有情人终成兄妹眷属!

来源:漫士呓语

编辑:J.C.


近期热门文章Top10

↓ 点击标题即可查看 ↓

1. 当理科生真玩起段子,也就没文科生什么事了

2. 物理所小编的心情不好,一个字也不想说,所以今天的头条就这样吧……

3. 宇宙是唯一的吗?

4. 风扇为什么逆时针旋转?

5. 为什么用摄像头拍电视屏幕会出现条纹?

6. 为改变人类献身的科研人,其实都在无偿为一个暴利行业打工?

7. 是什么让比尔盖茨、霍金都在恐惧?| SciFM Vol.14

8. 世界是如何存在的?(上)

9. 人红是非多,霍金这些年都为哪些谣言“背过锅”?

10. 宇宙灾难能毁灭地球上的全部生命吗?

点此查看以往全部热门文章


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存